23

» WarCraft 3 / Заклинание дух воды

Похожие вопросы:

ответ
нет не юнит а эфект
токо заметил и спелы теперь больше нормы наносят урона но дело не в константах
я хз что за фигня
а все разобрался , все дела были из за тригерного спела он почемуто на все спелы влиял )
можно закрыть тему
ответ
Джин, вы бы хоть что-нибудь прочитали, перед тем как за ВЕ садиться
Импортируешь эти текстуры и удаляешь пути. Профит.

23

» WarCraft 3 / Триггер - добавить событие к триггеру

Похожие вопросы:

ответ
  • Ну я не люблю дамми снаряды для направленных способностей, с ними много проблем... в общем юзаю кислотную бомбу и молот бурь, отлавливают попадание по урону в 0 ед. баффу.
  • Громовая поступь говённая способность для дамми скиллов, деформирует рельеф (это никак не убрать) лучше использовать молот бурь на каждого или ракетный удар, эти способности более гибкие в настройке и не дают не удаляемых эффектов.
  • Урон лучше всего наносить триггерно от имени кастера независимо что это может сделать и даммик, так сразу мы решим несколько багов - нейтралы будут разбегаться а не агрится на кастера (даммик то неуязвим), способности вроде Blade mail из доты (возвращает урон обратно) не будут работать корректно, а так же многое другое что проверяет убийцу и нанесшего урон.
Значит что нам нужно, летающий дамми юнит (делаем его из светлячка ночных эльфов) - модель Dummy.mdx (требуется скачать и импортировать в карту), обзор в 0, еду, стоимость в 0, хп\мп 1005000 (неважно), способности (москиты и усе, ну можно Неуязвимый нейтральный или как фрог маркер, чисто чтобы потом отьсеивать даммиков, магазины, и тому подобное проверяя на наличие этой способности)
Высота полета 0, тип летающий, угол крена в 0 град. убираем все спецэффекты при смерти и усе.
Триггерно двигай даммика прикрепив к нему спецэффект снаряда, когда до цели не останется расстояния убивай дамми и удаляй спецэффект, выбирай юнитов в области вокруг цели, потом исключи цель из группы и нанеси ей урон, после половинный (или какой там у тебя) урон всем остальным, потом создай даммика, вручи ему ракетный удар и прикажи выстрелить им по области под целью, все очень просто!
ответ
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
ответ
Mrachny, DesiMorti, нифига не верно
событие юнит умирает
откуда взяться приказу?
или вы думаете что в компе сидят маленькие человечки которые читают ваши мысли и следят чтобы всё работало так как вы того хотите?
должен вас огорчить но их не существует
и приказа не существует(ибо его никто не создал)
DesiMorti, есть куча систем отлова урона
даже есть статья на гуи на эту тему
хоть иногда статьи читайте
а вообще всё делается намного проще
просто помечаем построенный здания (например при постройке даём им дамми спел)
а при смерти юнита проверяем помечен он или нет(например есть ли у него дамми спел)
и если помечен то создаём юнитов
ответ
Аура не сразу вешается на юнита, нужна задержка.
ответ
во втором триггере вместо атакующий юнит должен быть источник повреждений

23

» WarCraft 3 / Помощь с LUA-кодом

Похожие вопросы:

ответ
декорация то сцществует? обычно что бы такие переменные оставались существовать, нужно иметь гуи триггер где хоть как то будет упоминаться юнит/декорация, хоть без ивентов или действий

23

» Администрация XGM / ссылки на профиль

Похожие вопросы:

ответ
Если пишет что ресурсы отсутствуют, то значит они отсутствуют (ваш кэп). Значит например у пользователя пустой блог.
Насчет того что в статьях, о проблеме известно, она решается.
ответ
~8gabriel8:
Ну так это же Россия, чё такого странного)))
ответ
Никак не работают, просто текст. Не будет ссылок - они каждый год у всех меняются по сто раз
ответ
Такое уже есть: xgm.guru/p/xgm/txt2-images#h3
Но это плохой паттерн - их нельзя перевести автопереводчиком, их не понимают поисковики (никто же не будет заставлять вас писать скрытый alt текст для скрин ридеров)
В будущем планируем красивые плитки, куда можно будет поместить картинку+ссылку+заголовок+текст
ответ

23

» WarCraft 3 / Общие здания и ресурсы.

Похожие вопросы:

ответ
Всем спасибо. Попробую создать через погрузку, должно выглядеть ок.
ответ
вот исправил.
исправления
интервал пополнения не обязательно ставить, работает без этого. и вообще не от этого работает. Ошибка моя. там с условием проблема была. Больше не встают на перезарядку
эх. ты не поймешь. руна нужна, если у тебя полный инвентарь. А ты можешь ее подобрать и она исчезнет, даже если у тебя полный рюкзак. Это отслеживается, проверяешь какую руну подобрал и можно делать всякие фишки. это я пример хотел сделать, что можно руну в магазин сразу пихать. С руной можно делать скрещивание, складывание зарядов и прочее.
можно отследить двойной клик, но походу поспешил с выводами. Проблема в том, что ты дважды покупаешь предмет, дважды тратишь золота. Короче может не хватит на второй предмет. Нельзя также и исключать, что в магазине итем закончится и будет пополнятся долго. То есть второй итем опять не купишь. Тебе тогда придется придумывать (ценник убрать и интервал обнулить). тебе скидывать бесполезно. Тут должна быть своя система покупки. Проверяешь сколько ресурсов у игрока и прочее.
вот системы. мне они приглянулись, их можно доработать и будет норм.
ответ
Вся информация по редактору AI тут
ответ
3.8.44b - как на видео - 9 стенок у эльфов
www.epicwar.com/maps/313139 адаптированная для варика 1.26
Благодарности к Tails55

23

» WarCraft 3 / Проблема с переносом триггеров

Похожие вопросы:

ответ
файл - параметры - автоматически создавать неизвестные переменные привставке триггеров.
размерность массивов в любом случае самому нужно будет переназначать.
ответ
Maxsavin, я каждой карте из кампаний даю свой кэш, чтобы не перепуталось ничего.
Не знаю, что получилось бы, сделай я один кэш-файл на всю кампу и грузи карты потом не по порядку. Проверять не буду.
Кампания - это пак карт.
ответ
Razor_dex, сконвертируй карту, потом открой в стандартном 1.26 редакторе, удали комментарий Рок Лии\Otome Renge
Для гуи-гигантов это типичная болячка, просто битый комментарий который содержит в себе информацию о нескольких действиях, считай как обычный триггер только отображается как комментарий
Возникает такое скорее всего при копировании

P.S. странно что редакторы до 1.31 не обращают внимания на такой баг
ответ
Вот тебе скрин триггера (только выбор декора и открытие 4 видов ворот) и как в игре все ворота открыты.
триггер
Результат

Уж проверку на наличие компа сам добавишь, думаю для тебя это не проблема :)

23

» WarCraft 3 / Удалить событие

Похожие вопросы:

ответ
надо периодически проверять, а не верить варкрафтовому событию. это одно из самых вредных событий в игре, его почти никто не использует в здравом уме
ответ
События триггера никак нельзя удалить, можно только удалить триггер (с кондишенами и акшенами).
А кстати вот - xgm.guru/p/wc3/venomanser
Будет несомненно полезно, как правильно удалять триггеры.
Да и вовсе полезно для общего развития.
ответ
TriggerRemoveAction
TriggerRemoveCondition
ответ
способность можно удалить спокойно, так и добавить.
еще ее спрятать можно, но это гемор (тк нужно импортировать файл, прописывать координаты), таким образом на всю игру спрячешь xgm.guru/p/100/200277
видимо это одна из коммандных абил, поэтому и нельзя заблочить. все что ты пытаешься сделать - заблочить, а не удалить
ответ
Можно, создаёте все 24 события лива для одного тригоера. А в действии триггера узнаете ливнувшего игрока с помощью функций: GetTriggeringPlayer(), GetLeavingPlayer().

23

» WarCraft 3 / выбор расы на игроков

Похожие вопросы:

ответ
Второй комп сломан поэтому проверить не могу, почему у меня подозрение, что оно должно работать....
Хотя могу и ошибаться, нормально делал карты года 2 назад.
ответ
  1. а) Создай 2 переменные-массива по типу "боевая единица" (массив - чтобы для каждого игрока, мы ведь за мультиплеер трем, прально?), назови типа MyChampion и MyChampionDummy.
    б) подготовь невидимого героя-пустышку с нужной тебе иконкой, убери ману, если у чемпиона ее нет. Убери ему радиус обзора, убери галочки типа "отмечать на мини-карте" - остальные - опционально.
    В дальнейшем мы будем синхронизировать пустышку и реального чемпиона, создавая видимость одной боевой единицы.
    Итак, наш первый триггер:
в) Отследи первое появление чемпиона, когда это случится - создай для игрока героя-пустышку. Соответственно сделай MyChampion [number of (Owner of trained unit)]= last trained unit, следующей строчкой создай того самого героя-пустышку для (owner of trained unit) и сделай MyChampionDummy = last created unit. Теперь мы прочно связали этих чуваков. Этот же триггер запускает остальные.
г) Отслеживание здоровья. Сделай изначально выключенный цикличный триггер, там, каждые 0.3 секунды. Триггер запускается пунктом в). Каждые 0.3 секунды меняй здоровье героя (чья икона висит, надо чтобы она соответствовала, прально?) в % на здоровье самого чемпиона.
д) пропищи событие, мол, если выбирает игрок своего героя (кликая на иконку) выбирается чемпион
е) убивай героя вместе с чемпионом
ж) отключай триггеры с проверкой и выбором, пока чемпион мертв
з) не забывай обновлять переменную чемпиона с каждым новым чемпионом.
ответ
Нет
ответ
Понадобится переменная содержащая количество играющих.
  1. Делай по принципу апгрейда крепости в замок. Только у базового здания несколько апгрейдов, на каждую расу. И триггером увеличить переменной +1 по окончанию апгрейда.
  2. Когда у переменной значение становится равное количеству играющих, создаешь работников.

23

» WarCraft 3 / Отдельный файл

Похожие вопросы:

ответ
кроме того, "тест карты" не подгружает данные кампании
ответ
Это далеко не обязательно сработает, надо знать, что там именно за скелет, как исходный, так и новый.
ответ
Скинул ссылку на бету RoC в лс
ответ
Помоему в WarRun'е был этот шрифт среди вариантов

Можешь чекнуть

23

» WarCraft 3 / Управление неподконтрольным юнитом

Похожие вопросы:

ответ
Я решил проблему, используя обработчики событий BlzTriggerRegisterPlayerKeyEvent и EVENT_PLAYER_MOUSE_DOWN
При нажатии правой кнопки мыши проверяется наличие живого героя и селекция юнитов, если в ней нет юнитов которыми игрок может управлять (или вообще никто не выбран) то юнит моментально отправляется приказом "move" в точку, на которую кликнул игрок и сразу выбирается.
При нажатии клавиши герой просто выбирается.

23

» WarCraft 3 / Продажа предметов

Похожие вопросы:

ответ
Diaboliko, у предметов с этим бага
юзай юнитов
с ними намного проще
ответ
2 магазина в одном месте. Один с предметами- другой нет. И через гетлокалплеер триггерно выбирать нужный магазин?
ответ
пример где-то надо еще таймером будет. просто по идее система работает так: происходит событие изменения ресурса (запоминаем сколько), следом происходит основное событие (покупка-продажа). значит, здесь ловим итем, потом вычисления с налогами. Но такой порядок бывает не всегда. Вот допустим продажа: сначала продаем (итем забирают, событие продажи), потом дают деньги (событие изменения ресурса). как видишь, здесь надо тогда таймером через 0.00 сек или сколько то сек проверять измену реса
хотел реализовать похожую систему (проводить торговлю не через чат, а через кнопочки). только на мем хаке. изменить можно только в мем хаке. если вы изменяете цену типу предмета, тогда она у всех итемов данного типа меняется. сделал так: копию на каждого игрока, у одного будет одна цена, у другого другая. короче каждый игрок товар может предложить по разной цене. как это будет работать пока не знаю (я не все продумал, и поэтому не доделал).

можно стоимость убрать и триггерами начислять/убавлять
ответ
используй подходящие константы к конкретным событиям триггера.
продажа итема
событие - юнит закладывает предмет в лавку
переменные:
GetSellingUnit() =продающий торговец (типа всякие предметы закладывает в магазин и получает деньги)
GetBuyingUnit()=GetTriggerUnit() = покупающий торговец (это обычно магазин)
покупка итема
событие - продает предмет (из лавки)
GetSellingUnit()=GetTriggerUnit() =продающий торговец (в данном случае магазин продает нам)
GetBuyingUnit() = покупающий торговец (это наш герой отдает денюшку, а сам получает артефает или лошадь)

А предмет который продают или покупают
GetSoldItem()

23

» WarCraft 3 / Вылезает ошибка(только эта)

Похожие вопросы:

ответ
Вопрос закрыт.
ответ
Карта запротекчена, или не соответствие версии
ответ
Так тебе вджасс нужен)


Вджасс это дополнение к обычному джассу, у себя ты можешь видеть строки объявления библиотеки, продвинутые комментарии и статические константные переменные


23

» WarCraft 3 / Прогрузка карты в редакторе

Похожие вопросы:

ответ
Опен мап должно открыть вот такое меню
Возможно у тебя реально проблема в последней, например он сканирует список всех карт, находит какое-то непотребство и падает в ошибку, надо проследить и почистить этот путь

Я не понимаю как работать без него, особенно без ро
В идее выбираешь режим редактор, а не игры, и работаешь в редакторе как обычно
ответ
Вопрос решён.

23

» WarCraft 3 / Аура дамага

Похожие вопросы:

ответ
цели - враги, уяз, неуяз. другого туда не надо писать, если не делишь на воздух землю.
пауза дамми отключит действие аур. локуст не влияет никак
ответ
Такой ауры нету, есть аура на бонус атаки (наверн, это не то, что вам нужно). можешь посмотреть список
Можно сделать триггерно, делаешь ауру пустышку. Потом систему урона, в этой системе проверяешь наличие баффа ауры. Наносишь доп урон. Ну, и конечно, надо знать какой дамаг от магии, или физическ. Это тоже надо подумать. Вроде, столько систем на определения придумано

можно еще каждые 2-3 сек выделять всех вокруг кастера в группу и что-то делать с этими юнитами, добавляя им бонусы: реген, защита и пр

Если заклинания триггерные, то можно проверять висит ли на кастере бафф, и увеличивать дамаг. Многие стандартные способности можно сделать триггерно

23

» WarCraft 3 / Проблема с созданием предмета

Похожие вопросы:

ответ
Андреич:
Все карты кампании с нестандартными обьектами надо запускать в игре через "Доп. Кампании".Хоть в JNGP, хоть в просто WE.
ответ
GearOfRage, в данном случае надо тестировать кампанию, а не саму карту. Открываешь через игру доп кампанию и играешь нужную миссию (для этого надо сделать все миссии временно доступными)
ответ
Виджитайзер норм, если правильно все делать. Ultimate Slk Opt быстрый, но надо держать ухо в остро, то будет карта с иероглифами.
AntiMage:
quq_CCCP, виджитайзер слишком медленный, Ultimate opt непонятный, +они оба ведь защишают карту, мне этого ненужно тоесть я хочу чтоб мои обьектные данные о войсках и.т.д обратно восстановились когда угодно, чтоб world editor мог открывать
А нах юному IceFrog'у понадобилась слк оптимизация? Тем более виджитайзер ничего не защищает, но чтобы работать с данными карты в редакторе достаточно распаковать их из карты в папку с варом и все, странно что у вас нет других проблем о которых бы следовало спросить на форуме.
ответ
логика такова
цикл от 1 до всех предметов в карте призван Установить для Каждого Item_Init[Cnt_Item_Init]
Значение взятое из SetItemUserData
для удобства занес эти Значения в Переменную типа Массив чтобы Оперировать с ними там где мне это нужно
и когда в инвентаре окажется Индекс этого предмета я буду знать что этот предмет мне нужен для Удаления
для этого есть функция
function F_H_Section_ReturnItem takes unit u, integer id returns nothing
set Cnt_Inv = 0
loop
exitwhen Cnt_Inv > Min_Inv
set ItemsInSlots[Cnt_Inv] = UnitItemInSlot(u, Cnt_Inv)
if LoadBoolean(H, StringHash("H"), StringHash("RemoveItems")) then
call SaveBoolean(H, StringHash("H"), StringHash("RemoveItems"), false)
call RemoveItem(ItemsInSlots[Cnt_Inv])
else
if GetItemTypeId(ItemsInSlots[Cnt_Inv]) == id then
call SaveBoolean(H, StringHash("H"), StringHash("RemoveItem"), true)
call RemoveItem(ItemsInSlots[Cnt_Inv])
endif
endif
set Cnt_Inv = Cnt_Inv + 1
endloop
set Cnt_Inv = 0
loop
exitwhen Cnt_Inv > Min_Inv
set ItemsInSlots[Cnt_Inv] = null
set Cnt_Inv = Cnt_Inv + 1
endloop
endfunction
достаточно одно SaveBoolean и готово
а дальше Создание предмета ПО Индексу расположенный в Item_Init

call SaveBoolean(H, StringHash("H"), StringHash("RemoveItems"), false)
призван удалить Все предметы из инвентаря Без проверки GetItemTypeId

либо использовать вариант который написал nazarpunk:

тут уже мне решать

function F_Pick_Item takes nothing returns nothing

set Cnt_Item_Init = 1
loop
exitwhen Cnt_Item_Init > Item_Init_Number_End
call SaveBoolean(H, StringHash("H"), StringHash("ItemUserDataSave"), true)
call SaveItemHandle(H, StringHash("H"), StringHash("ItemUserData"), GetManipulatedItem())

if GetItemTypeId(GetManipulatedItem()) == Item_Init[Cnt_Item_Init] then
set ItemUserDataMas[ItemUserDataAmount] = Cnt_Item_Init
endif

set Cnt_Item_Init = Cnt_Item_Init + 1
endloop

call F_H_Section_ItemUserData()

Я походу нашёл где ChatGPT обучается кодить...
я похож на ИИ?
даже мне стало интересно на что он способен :)

function F_H_Section_ItemUserData takes nothing returns integer
local item ItemUserData = LoadItemHandle(H, StringHash("H"), StringHash("ItemUserData"))
local integer I
set I = GetItemUserData(ItemUserData)
if LoadBoolean(H, StringHash("H"), StringHash("ItemUserDataSave")) then
call SaveInteger(H, StringHash("H"), StringHash("GetItemUserData"), I)
call SaveItemHandle(H, StringHash("H"), StringHash("ItemUserDataHandle"), ItemUserData)
call SaveInteger(H, StringHash("H"), StringHash("UserDataPlayerId"), GetPlayerId(GetItemPlayer(ItemUserData)))
call SaveInteger(H, StringHash("H"), StringHash("UserDataItemId"), GetItemTypeId(ItemUserData))
call SaveInteger(H, StringHash("H"), StringHash("ItemLevel"), GetItemLevel(ItemUserData))
call SaveBoolean(H, StringHash("H"), StringHash("ItemUserDataSave"), false)
endif
if ItemUserDataAmount < Size then
call SetItemUserData(ItemUserData, ItemUserDataMas[ItemUserDataAmount])
call SaveInteger(H, StringHash("H"), StringHash("ItemUserDataAmount")+ItemUserDataAmount, ItemUserDataMas[ItemUserDataAmount])
if LoadBoolean(H, StringHash("H"), StringHash("ItemUserDataIndicator")) then
set HRed[2] = GetRandomReal(0, 255)
set HGreen[2] = GetRandomReal(0, 255)
set HBlue[2] = GetRandomReal(0, 255)
call ItemAddIndicatorBJ(ItemUserData, HRed[2], HGreen[2], HBlue[2], 0)
endif
return I
else
call Text("|cFFFF0000ERROR: F_H_Section_ItemUserData - clear bad key|r")
set ItemUserDataAmount = Size - 1
return ItemUserDataAmount
endif
endfunction
constant integer Size = JASS_MAX_ARRAY_SIZE

спасибо за ответы, останусь на этом примере пожалуй

23

» WarCraft 3 / Герой: Hogger

Ваш ресурс не прошёл автомодерацию. Пожалуйста, внесите исправления или ожидайте проверки модератором.
Причина
Типы файлов: png и не содержат один из: mdl, mdx, fbx, obj, max, blend, mb, ma, 3ds, dae, dxf, usd, usdz, stl, stp, wrl, m2, zip, 7z, rar, tar, gz, apk, gzip, jar, lzip, tgz, tbz2, bz2, zipx, zz, dmg, ipg, z, iso
Your resource has not passed automoderation. Please make corrections or wait for the moderator to check.
Reason
File types are: png and don't contain one of: mdl, mdx, fbx, obj, max, blend, mb, ma, 3ds, dae, dxf, usd, usdz, stl, stp, wrl, m2, zip, 7z, rar, tar, gz, apk, gzip, jar, lzip, tgz, tbz2, bz2, zipx, zz, dmg, ipg, z, iso
// CID2
23

» WarCraft 3 / Зрители

Похожие вопросы:

ответ
зрители и обсы не взаимодействуют ни с какими триггерами, они вне игры
ответ
GoJustGo, зрители это и есть те самые 2 игрока, просто в лтд за них компы, а если есть зрители, то они играют роль ботов, так же в доте.
ответ
Ну если взять стандартное мили 1х1, где обычно катки длятся 10-15 минут, то думаю афк на 2 минуты уничтожит игрока на первых 10 минутах. Если катка затянулась на полчаса, то афк 5-10 минут может уничтожить игрока. Если игра затянулась на 10 часов, то думаю, часок можно и поафкашить.
Вот тут афк на 6.5 часов было норм для игроков
Так что все зависит от игры, геймплея, условий, где это критично а где нет. Может быть у тебя будет не конкретное число минут для определения афк и передача войск союзнику, а прогрессирующая шкала, чем дальше катка тем дольше можно быть афк, ибо самая жара действий обычно происходит на старте-середине игры.
И я не уверен, что стоит кикать игрока, можно просто передать контроль союзникам, пока он не вернется. Но это уже твоя авторская идея и система, как посчитаешь правильным для своей карты.

И да, АФК - от англ. AFK = Away From Keyboard, что в переводе отошел от клавиатуры.

23

» WarCraft 3 / Проблема с тестом карты

Похожие вопросы:

ответ
Даже так не хочет работать. Я добавляю игрока и сразу же вызываю функцию.

нельзя делать call DestroyForce
или call RemoveRect после этого ты их ни разу не сможешь юзнуть даже указав новую переменную
Как видишь выше, дело не в этом. Да и не уничтожал я их.

Может она просто не работает в массиве?...

Закрою вопрос и перефразирую для понимания.

23

» WarCraft 3 / Изображение

Похожие вопросы:

ответ
JIEGEND, в смысле как, фотошоп тебе для чего?


ответ
Как я понимаю, тебе подойдет создание фрейма с какой-нибудь картинкой (иконкой)
Для примера могу посоветовать ресурс от Bergi
LUA, Reforged Варкрафт, если что.
В частности если подойдет, то попробуй поиграться со значением BlzFrameSetAbsPoint(), а точнее с параметрами x и y.
ответ
Создай изображение размером 256x256. Конвертируй его в формат TGA. Переименуйте в war3mapPreview.tga и загрузите в карту, в карте уберите путь war3mapimported
ответ
WellDoneTrooper, если используешь более поздние версии, 1.27, 28 и тд, могут выскакивать свои приколы.

23

» WarCraft 3 / ИИ героев

Похожие вопросы:

ответ
Совсем зазнались вы ребята. Вы чё совсем оборзели засерать пользователей !
Q/A для того и создан !
Не хочешь отвечать, молчи.
Учи то, учи это.
Я про конкретную наработку спросил. Зазнались, и обленились. Этим всё сказано...
ответ
WW перестаёт становиться DIS, когда у героя более одной абилки WW
типа что бы ты мог активировать другой, пока работает первый... но разблокировка идёт на все сразу (и на сам себя тоже)
ответ
за дальность выбора героя магазином отвечает способность магазина - выбор героя, выбор воина и пр. тобы настроить, смотрите в настройках абилы
ответ
Extremator предлагает делать переключение через выделения таверн через триггеры. Выделение с одной снял, выделение на другую переключил.

Хоттаб, предлагаю другой вариант - ОДНУ таверну со всеми героями. пример с итемами, там переключение система 14 верс
есть пример, тоже самое можно сделать например для героев. По идее можно всех-всех героев заранее забить в таверну. Так можно сделать ОДНУ таверну со всеми героями, но с переключением списков. Так можно сделать, это надо в РО забить всех героев в таверну, если не получается пробуйте через клавишу Shift. Но будет отображаться только первые 10-12, остальные не вместятся на панеле. Поэтому надо разбить героев на списки.
Можно спрятать всех героев, кроме определенных героев, находящей на первой странице. А когда нажимаешь, то прячешь для игрока одних героев на 1 странице, и показываешь других героев на след странице.

как прятать героев вот ссылка когда задаешь лимит обучения данного типа ноль, то иконка этого героя исчезает. прячешь одних. разблокируешь других.
ответ
Тригером выдавать на время указанный тип боевой еденицы (твоего героя)
Через время его убивать, разве не очевидно)))?